package com.kedacom.ctsp.authz.entity;

import com.kedacom.ctsp.authz.access.DataAccessScopeEnum;
import com.kedacom.ctsp.orm.param.Term;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.bind.annotation.RequestMethod;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * @author sunchenjie
 * @date 2017/11/22 0022
 */
@Data
@NoArgsConstructor
public class AuthResource implements Serializable {

    /**
     * 主键id ，自增长
     */
    private String id;
    /**
     * 资源名称
     */
    private String name;
    /**
     * 唯一标识（在系统中使用）
     */
    private String sign;
    /**
     * 类型 10 菜单 20 操作 30 权限等
     */
    private String type;
    /**
     * 来源
     */
    private ResourceEnum configSource;
    /**
     * 对应的url
     */
    private String url;

    /**
     * 可见的资源字段
     *
     * @return
     */
    private Set<String> includeFields;

    /**
     * 不可见的资源字段
     *
     * @return
     */
    private Set<String> excludeFields;

    /**
     * 行级查询权限
     */
    private List<Term> dataAccess;

    /**
     * 行级级联权限
     *
     * @return
     */
    private DataAccessScopeEnum dataScope;

    /**
     * 分管用户ids
     */
    private Set<String> dataAccessUserIds;
    /**
     * 分管部门ids
     */
    private Set<String> dataAccessDeptIds;
    /**
     * 请求方法
     */
    private RequestMethod method;

}
